using Lzfy_His_Service.Models;

namespace Lzfy_His_Service.Services
{
    public interface IPermissionService
    {
        Task<List<MenuDto>> GetMenuTreeAsync(MenuTreeRequest request);
        Task<List<MenuDto>> GetAllMenusAsync();
        Task<MenuDto?> GetMenuByIdAsync(int id);
        Task<int> CreateMenuAsync(MenuDto menuDto);
        Task<bool> UpdateMenuAsync(int id, MenuDto menuDto);
        Task<bool> DeleteMenuAsync(int id);
        Task<bool> ToggleMenuStatusAsync(int id, bool isActive);
        Task<bool> AssignPermissionsAsync(AssignPermissionRequest request);
        Task<List<MenuDto>> GetRolePermissionsAsync(int roleId);
        Task<List<MenuDto>> GetUserPermissionsAsync(int userId);
    }
}